The internet is actually a group of interconnected networks. Messages between computers are exchanged over the internet by using packet switching. Different networks use a protocol to allow them to communicate with one another.
IP specifies the format of IP packet headers as they travel through the network. Routers utilize routing tables to send data packets through the network from node to node. Every computer on the internet has a unique address. IP attaches to the data packet the address from which the data comes and the address of the system to which it is going in a protocol header.
For many years, it has been recognized that repetitive transmission of similar packets over IP bears an unnecessary overhead in the IP and other headers. This is because many fields never change, others rarely change, and still others increase sequentially by the same amount. Various IP header compression techniques have been proposed to deal with this issue, especially when the IP payload is RTP packets carrying Voice-over-IP (VoIP) speech samples.
Header compression is utilized to compress the IP header in a data packet before it is transmitted. This compression mechanism expedites transmission of RTP packets and Transmission Control Protocol (TCP) packets and minimizes the amount of bandwidth consumed during transmission of RTP packets and TCP packets.
RTP has a header portion and a data portion. The data portion provides support for the real-time properties of applications. The header portion is comprised of the IP segment, the User Datagram Protocol (UDP) segment, and the RTP segment, making it considerably larger than the data portion of the RTP. Due to its size, the IP/UDP/RTP segment combination is often compressed prior to sending. RTP header compression is done on a link-by-link basis to avoid consumption of bandwidth. RTP header compression is particularly useful when there is a high portion of RTP traffic. RTP header compression can be used for media-on-demand, interactive services and real-time conferencing within the internet.
For audio applications, for example, a RTP packet usually has a twenty to one hundred and twenty-eight byte payload. RTP header compression identifies the RTP traffic and compresses the portion of the packet consisting of the IP segment, the UDP segment and the RTP segment. A twenty byte IP segment, eight byte UDP segment and twelve byte RTP segment can be compressed from a forty byte header to approximately five bytes.
Robust Header Compression (ROHC) is a method for compressing IP, UDP, RTP and TCP headers. This method of compression is preferable over wireless links where the packet loss rate is usually high. The overhead associated with IP, UDP and RTP requires large bandwidth which is not present in wireless links.
Internet Engineering Task Force (IETF) Request for Comments (RFC) 3095 is an example of a proposed means of compressing the redundant IP, UDP, and RTP headers that are present in many VoIP streams. RFC's are documents describing new research and inventions involving internet technologies. The IETF adopts some of these RFCs as new internet standards.
RFC 3095 attempts to address issues such as channel negotiation, error recovery in the presence of high bit error rates, and other pragmatic issues that arise in actual IP networks. The IETF has furthered this work by forming a ROHC Working Group (WG).
Traditionally, because the IP header is involved, and because the IP header must be present for end-to-end routing at the network (layer 3) level, IP header compression techniques have focused on point-to-point links (layer 2) only. The IETF ROHC WG published a document, “draft-ietf-rohc-hcoipsec-03” (Oct. 22, 2006), authored by contributors from the Booz Allen Hamilton consulting firm. This document discusses a method of carrying compressed headers within the Internet Protocol Security (IPsec) Encapsulating Security Payload (ESP) tunnel used by Generic Access Network (Unlicensed Mobile Access)/(GAN(UMA)). The name given to this technique by the authors is Header Compression over IPsec (HCoIPsec). However, a single application of this type of header compression does not give minimal RTP/ESP header size.
Generally, IPsec tunnels mask source-destination patterns but create increased packet overhead in the process. ESP tunnel mode Security Association (SA) can easily create at least 50 additional bytes of overhead per packet which creates problems on wireless networks with lower bandwidth.
HCoIPsec reduces the protocol overhead for packets traveling between IPsec SA endpoints by compressing the transport layer header, such as UDP and TCP, and inner IP header packets at the ingress of the IPsec tunnel and decompressing these headers at the egress. A full description of the method is discussed in the “draft-ietf-rohc-hcoipsec-03” memo previously mentioned and is incorporated herein by reference.
IPsec is a suite of protocols for making IP communications secure. IPsec secures IP communications by encrypting and authenticating IP packets. It is currently employed both on IPv6 and IPv4. However, it is merely optional for IPv4 and is only mandatory to implement, not to use, on IPv6. IPsec provides either transport mode security for packets in which end-point computers process security or tunnel mode security for packets in which a single node provides security to multiple computers. In transport mode, the payload of the IP packet but not the IP header is encrypted. In tunnel mode, the entire IP packet, including IP headers, is encrypted.
The ESP protocol provides protection of a packet by insuring authenticity and confidentiality. In tunnel mode ESP, the inner header is protected but not the outer header.
HCoIPsec is used in the application of header compression to tunnel mode SAs since transport mode SAs only encrypt the payload of an IP packet while leaving the IP header untouched. Since compression of transport layer headers does not provide significant bandwidth efficiency benefits, HCoIPsec is applicable to and beneficial in tunnel mode.
There is, however, still a need in the art for a convenient to implement, reliable, inexpensive and efficient method for IP header compression for RTP packets that includes header compression for the outer IP layer that carries IPsec ESP tunnel traffic.